Бесплатный курс по Мобильной платформе 1C. Модуль 3

Модуль 3. Использование планов обмена для мобильных баз данных

В ходе третьего модуля Вы изучите:

  • Создание и настройку планов обмена
  • Создание узлов плана обмена
  • Регистрацию изменений по условию

Порядок обучения

329696678Скачивайте теоретические материалы в PDF и видео-формате. Рекомендуем начинать именно с изучения теории.

home-security-systems-installation-costs Выполняйте практическое задание для закрепления полученных знаний.

загруженное (5)Выполните самоконтроль, просмотрев видео-решение преподавателя.

Теоретические материалы

Итак, приступайте к изучению теоретического материала третьего модуля курса.

Данный контент доступен только для зарегистрированных пользователей.
Пожалуйста, войдите на сайт (Войти), если Вы уже зарегистрированы или зарегистрируйтесь на сайте (Зарегистрироваться), чтобы получить доступ.
Регистрация занимает 1 минуту, но открывает доступ к материалам сайта.

Вопросы

Если Вам необходима поддержка, мы с радостью ответим на Ваши вопросы в рамках Мастер-группы «Полного курса по разработке Мобильных приложений на платформе «1С:Предприятие 8».

<< Перейти к Модулю 2

Комментарии / обсуждение (491):

  1. Jestery

    При выполнении обмена с “Сервером” выскакивает ошибка “Ошибка преобразования данных XML:”

    • M0narch

      Тоже самое. Причем когда изменения были только в номенклатуре, то обмен работал, а с документами вылетает ошибка

  2. Marishka2112

    При нажатии на ВыполнитьСинхронизацию на сервере выдаёт ошибку:
    {ОбщаяКоманда.ВыполнитьСинхронизацию.МодульКоманды(20)}: Ошибка при вызове конструктора (WSОпределения): При создании описания сервиса произошла ошибка. http://10.50.13.49/day3/ws/ОбменДанными.1cws?wsdl: При создании описания сервиса произошла ошибка. http://10.50.13.49/day3/ws/ОбменДанными.1cws?wsdl
    Подставляла IP и свой, и чужой, и 127.0.0.0.1, Apache перезагружала. Версия учебная. Какой же IP там надо указывать? Как это можно обойти, чтобы не через IP обращаться?

  3. Kubovtsov

    Добрый день , а где ссылки на 4 – задание ? на почту так и не пришло

  4. Maya_Suldina

    У меня упорно не хочет работать обмен данными:-( После двухдневных попыток запустить обмен между собсвтенными конфигурациями решила попробовать на конфигурациях из ДЗ. Результат плачевный: при попытке запустить обмен с клиента появляется ошибка разбора XML: фатальная ошибка. Перезагрузка не помогает((( К сожалению возможности протестировать на реальном устройстве у меня сейчас нет, может ли быть дело в виртуалке(у меня стоит Blue Stacks)?

    • Игорь Сапрыгин

      С комментариями знакомились? Планы обменов идентичны на клиенте и на сервере? Номера сообщений обнуляли?
      Случайно не опубликовали вместе веб клиент и мобильное приложение?

  5. ci4e

    По заданию.
    Если не принимать во внимание установку “Делай как сказано!”, возникает вопрос: зачем в регистре хранить координаты в виде объекта (тип ХранилищеЗначения)? Не экономнее ли (и по памяти, и по скорости доступа) в виде 3-х чисел (широта, долгота, высота – все равно там больше ничего нет)? Ну, на крайняк – структурой…

    • Игорь Сапрыгин

      Сравните :) Мы не ограничены в средствах.
      Вполне допустимо хранить 3 ресурса – нагляднее :)

  6. ci4e

    Еще раз для самых тупых: можно ли производить пошаговую отладку кода, выполняемого на мобильном устройстве?

  7. ci4e

    Про отключение автообновления координат.
    По моему, в выложенной конфе в метод ОтключитьОбработчикИзмененияМестоположения передается совсем не та процедура, что в метод ПодключитьОбработчикИзмененияМестоположения.

    Оп = Новый ОписаниеОповещения(“ОбработкаОповещения”, ЭтаФорма);

    Это надо определить вне процедур Включить…/Отключить… и передавать в них параметром (или глобальной переменной).
    (пробовать самому некогда – не поспеваю с контрольным заданием :))

  8. ci4e

    Работа с геопозиционированием.
    Планшет: dell streak 7, gps включен, позиционирование разрешено.
    Виртуалка.

    1. Команда “ПоказатьОпции” (код команды: http://yadi.sk/d/O5wRNSsjN9Bgx) на виртуалке показывает сначала ошибку “Значение не является значением объектного типа (Имя)” (http://yadi.sk/d/fzMX7vxwN9B3y), а потом все показывает; на планшете показывает весь список без сообщения об ошибке.
    Почему, откуда?

    2. Установлено разрешение на отладку и адрес отладчика 192.168.0.102. При запуске приложения на планшете отладчик не запускается. Это нормально?

    • L0z4

      похоже что это норма. Будь это стабильные данные, они были бы структурой. А так, видимо сама 1С получает из системы этот массив не зная толком его содержимое.

  9. Droom (Виктор)

    ЭЭЭ … отчет тут выкладывать ?!

    з.ы. тут, как я вижу только обсуждение, а где выкладываются решения ?!

  10. Булимов Олег

    При публикации на веб-сервере выскакивает ошибка ADSI (ошибка в файле), подскажите что мне делать, как исправить ошибку?

  11. ci4e

    Обмен между Клиентом и Сервером работет.
    Конфу с сервера опубликовал, приложение с клиента обновил, на планшете на всякий случай старый вариант приложения убил, поставил только что опубликованный. На планшете добавил узлы ЦБ и М2.
    Нажимаю на планшете “Выполнить обмен” и получаю ошибку “Неизвестный получатель”.
    Что я сделал не так? Вроде все как у тренера…

    • Escander

      А стационарник про узел М2 знает? Кста, М2 и ЦБ – это ведь коды узлов у Вас?

      • ci4e

        Совершенно верно, эти же коды – ЦБ, М2 и М1 (для тонкого клиента) – прописаны и на сервере.

        • Escander

          на мобильном должен быть только один из М1, М2,… у вас так?

          • ci4e

            Да. На тонком клиенте – М1, на планшете – М2.

            • Escander

              что за тонкий клиент? Мобильная база на стационарном компьютере? Тогда там-же можно посмотреть внутрь отладчиком что куда передаёт (значения)

            • ci4e

              можно, конечно, но там все отрабатывает нормально, без ошибок.

          • ci4e

            беда была в том, что на мобилках текущим узлом был ЦБ (первый заполненный) или был только один М2(М3). И то, и другое неверно.
            ВАЖНО:
            – на мобильном устройстве сразу после установки приложения первым заполненным узлом должен быть узел, присвоенный этому устройству (потом его поменять мне не удалось)
            – на мобилке обязательно должен присутствовать узел назначения (может это и азбука, но для меня было неочевидно)

            Кроме того, надо было скорректировать адрес WS-ссылки (с 127.0.0.1 на 192.168.х.х).

            После всех этих корректировок обязательно(!) переопубликовать конфу с сервера и мобильное приложение, а также не забыть рестартануть апач!

            Обмен заработал и с мобилок (планшет, виртуалка), правда как-то кособоко: не понравился объект – не переносит, изменил что-то в объекте – перенёс…
            Словом, живет своей таинственной жизнью.

            • L0z4

              более точно стоит сказать не “первый заполненный”, а отмеченный зеленым кружочком предустановленный узел. Какой он в списке значения не имеет. Но именно тот что с зеленым кружочком отвечает за идентификацию текущей базы данных.

  12. DmitriyVa

    решение 3-го урока заканчивается подключением мобильного устройства 2-м узлом к серверу.
    У меня возникает проблема – при запуске обмена приложение (телефон HTC Desire Z) уходит “в себя” (крутит волчок выполнения обмена) и ни на что больше не реагирует. Прибить 1С процесс невозможно – его нет в списке запущенных.
    Повторил на проверочных конфигурациях (mobile-apps-fm-module03) – результат аналогичный: узел М1 обмен отрабатывает, узел М2 – зависание процесса.
    Как мне закончить 4-е задание?

        • Escander

          М1, М2 и т.д. – это разные мобильные устройства и все записи одного устройства для обмена должны соответствовать 1 узлу, т.е. на М1 должны быть записи от имени узла М1 для узла ЦБ, на М2 только записи от имени узла М2 для узла ЦБ. Если вы с узла М1 пытаетесь отправить на М2 – это не правильно, про такой узел М1 вообще ничего не должен знать т.к. каждое мобильное устройство живёт своей автономной от других мобильных устройств жизнью!

          • DmitriyVa

            Я делаю – аналогично решению 3-го урока:
            М1 – лектор делает на компьюторе,
            М2 – подключает мобильное устройство.

            для М1 (приложение на компьютере) выполнение обмена происходит “как по писаному”
            для М2 (HTC Desire Z) – уходит в никуда. После нажатия “Выполнить обмен” крутится кружок, сообщений нет, ошибок нет. Сбросить – невозможно (только перезагрузкой телефона).
            Взяв эталонные конфигурации из лекторского архива получаю аналогичный вариант. Видимо проблема все таки в телефоне.
            P.S.
            Заказал планшет Asus, получу завтра. Хоть я уже и “пролетаю мимо кассы” – посмотрю на результат на планшете. Досадно ну и ладно.

            • Поддержка курса по EDT

              Не печальтесь. Делайте пока 4 модуль.
              И отпишитесь. Баги бывают, и никто от них не застрахован

            • L0z4

              в отсутствии дебагера нужно попробовать писать логи в файл.. Сам еще не мобильной платформе не пробовал, но это лучше чем ничего.

            • DmitriyVa

              Уже не успею :(
              1. обмен данных понятен, но проверить нет возможности – обмен “М2-ЦБ” у меня не работает (я упоминал – как в данном задании, так и в конфигурации “Контроль расходов” тоже, как моей так и лекторской, из архива)
              2. с аудио, видео не работал – без отладки “путаюсь в показаниях” (теоретически понимаю, что надо вынуть данные из хранилища, как – не представляю)

            • DmitriyVa

              В итоге: за 2 тыс получить грамотно расписанный механизм веб-сервиса, который ранее не использовал, и то хлеб :)

            • L0z4

              Desire Z это же андройд 2.2 – весьма старый
              Все же меня не покидают сомнения что не так уж и хорошо сборки на 17 апи совместимы со старыми версиями.

    • DmitriyVa

      Уточнение: практическая работа 3 и 4 (конфигурация “Контроль расходов”) с мобильника работает, хотя есть проблемы с данными: широта, долгота у координат отсутствует, но на карте позиционирует точно.

      • Escander

        координат нет по всем 3 геопровайдерам?

        • DmitriyVa

          Координаты есть, нет долготы и широты.

          • Escander

            географические координаты в геопозиционировании = {широта;долгота;высота}. Есть 3 геопровайдера: GPS, Passive, NteWork которые могут выдавать несколько разные результаты определения местоположения (илди не выдавать их). Про координаты вы проверили для всех 3 геопровайдеров?

            • DmitriyVa

              В ветке по 4-му заданию я говорил:
              – на команду “Показать текущие координаты” выдает: “1С Предприятие Получение элемента по индексу для значения не определено”.
              – “Обновить местоположение gps” – Не удалось получить координаты.
              – регистр, координатами не заполняется.

              если убрать gps, то “Passive” (данные в регистр выбираются из него) подхватывает “NеtWork” и регистр заполняется данными.

              Меня интересовало, почему gps неработает – ведь в гугле и 2ГИС он работает.

  13. Елена

    Подскажите, где может быть ошибка?
    На клиенте при обмене:
    “Ошибка при вызове метода контекста (ПрочитатьXML): Ошибка разбора XML
    Фатальная ошибка:
    Extra content at the end of the document”

    • Potovskiy

      Такая же ошибка при обмене с телефона. С клиентской конфигурации запущенной на компьютере обмен проходит нормально :-( Что не так делаем ?

    • DmitriyVa

      Переопубликуйте веб-сервис, рестартуйте Апач, обновите веб-ссылку на клиенте, обновите мобильное приложение.
      Подозреваю, что ошибка у вас уйдет, а процесс на телефоне “уйдет в себя” (как у меня).
      P.S.
      Potovskiy попробуйте тоже. Еще бы модели телефонов сообщили, случаем не НТС ?

        • DmitriyVa

          Desire ? с родной прошивкой на 2-м андроиде?

        • Potovskiy

          HTC Rhyme S510b. Так ничего и не получается. Ошибка разбора XML: -[1,1] Фатальная ошибка: Extra content at the end of the document. Проблема связана с телефоном?

          • Potovskiy

            DmitriyVa Спасибо! Благодаря Вашим советам получилось! Поменял на сервере Имя файла публикации на DataTrasfer , переопубликовал, на клиенте Urlисточника WS-ссылки поменял, Обмен пошел…

      • Елена

        У меня планшет Huawei, но в данном случае это не имеет значения, на виртуалке точно такая же ошибка, уже взяла конфу тренера, и все равно та же ошибка :(

        • DmitriyVa

          Елена, сделайте так как я выше говорил – переопубликуйте веб-сервис и прочее.
          И переименуйте на латиницу, так у меня эту ошибку выдавать перестало:
          http://192.168.0.171/srv3/ws/DataTrasfer.1cws?wsdl
          и так:
          Соединение = WSСсылки.ОбменДанными.СоздатьWSПрокси(“DataTrasfer”,”ExchangeData”,”ExchangeDataSoap”);

          Операцию не переименовывал, осталась на русском.

        • Елена

          Решение проблемы:
          Код узла на планшете М1 – кириллица,
          на сервере М1 – латиница.
          Сделала вывод, что если такая ошибка проблема в узлах обмена.

    • DaNN

      читайте комментарии, у многих такая ошибка была, варианты решения там предложены

  14. Sherlock99

    Во вложении два файла.
    ВыполнитьСинхронизациюНаСервереКакВПрактике
    и
    ВыполнитьСинхронизациюНаСервереКакВРешенииДЗ

    В первом файле пытался написать функцию как в практике. Выдаёт ошибку во время подключения к серверу:
    (Ответ = ВСПрокси.Синхронизация(ДанныеXDTO);)

    Во втором файле переписал так, как показано в решении ДЗ. Добавил
    WS-ссылку и все заработало.
    Вопрос: что я не учел в первом файле?

      • Sherlock99

        Не хотят цепляться файлы. Попробовал их переименовать

        • L0z4

          если глаз не подвел, то минимум одно отличие в том, что 1 посылает ХЗ, а второй строку

  15. Aida

    При работе с андроидом сегодня вышла ошибка работы с интернет: connection to http://127.0.0.1 refused. До этого все было нормально. Базы 1С на телефоне обновляются. Ошибка появляется при синхронизации. Клиент на компьютере работает без проблем.

  16. zhilenko_mariya

    При обмене между клиентом и сервером на ПК все отрабатывает правильно, а на телефоне появляется предупреждение: “Сервис не найден. {DataTransfer}:ОбменДанными”. Причем появляется и на самописных конфигурация и на скачанных решениях.

    И еще почему-то не отображаются справочники и документы на моб. устройсте. Команда “Выполнить обмен” есть, Обмен данными с мобильным устройством есть, а номенклатуры и ПТУ нет.

    • Игорь Сапрыгин

      >почему-то не отображаются справочники и документы
      Где-то всплывал такой момент. И решился он просто загадочным способом… Кажется удалили WS ссылку и команды вернулись О_о

      >Сервис не найден. {DataTransfer}:ОбменДанными
      Ну явно какая-то проблема в обращении с мобильного устройства на ПК. В браузере на мобилке все хорошо? Там деталей не пишется?
      Если в браузере все ок, то какое имя и URI у Вашего веб сервиса? Опечаток точно нет?

      • zhilenko_mariya

        Удаление WS ссылки действительно помогла, спасибо. Но это очень странно..

        >Ну явно какая-то проблема в обращении с мобильного устройства на ПК. В браузере на мобилке все хорошо?
        Нет, не хорошо. Не удается подключиться ни к одному WS, пишет, что адрес не доступен сейчас, но при этом сама конфигурация спокойно обновляется

        • zhilenko_mariya

          Чтобы команды все же отображались заменила ссылку на динамическую. Теперь при попытке обмена с моб. устройства вылезает ошибка “Неверный формат”. А на ПК обмен проходит на ура

  17. MarinaG

    Взята база решения пз 2-го модуля. На ее основе начата разработка решения пз 3 модуля. При выполнении обмена ошибка, апатч перезапускала. Помогите разобраться в чем дело?
    {ОбщаяКоманда.ВыполнитьОбмен.МодульКоманды(11)}: Ошибка при вызове метода контекста (ВыполнитьОбмен)
    Ответ = Соединение.ВыполнитьОбмен(СтрокаДанных);
    по причине:
    Ошибка вызова операции сервиса: {ОбменДанными}:ОбменДанными:ВыполнитьОбмен()
    по причине:
    Неизвестная ошибка. Ошибка работы с Интернет: Не могу установить соединение
    по причине:
    Ошибка работы с Интернет: Не могу установить соединение

    • MarinaG

      Интернет работает. Строка данных для передачи сформирована. Где поискать?

    • Игорь Сапрыгин

      Видимо ошибка в работе с интернетом? Где работаете? На мобильном? На виртуалке? Браузер успешно отрабатывает? Коннект до сервиса “не в 1С” есть?

      • MarinaG

        Самое начало выполнения практического задания (взята конфа практического задания 2 дня), ошибка в конфигурации клиент (Мобильное устройство).

        • MarinaG

          Видимо из-за этого ругается. Хотя где не определен Узел не понятно.

          • MarinaG

            Разобралась. Узел был реально пропущен((( Опять невнимательность….

  18. AnastD

    В задании №3 URL указвается 192.168.1.6/day2p/ws и т.д. что это за адрес, если я указываю IP своего компьютера и свою папку публикации задания №3, то мне дает ошибку и IE тоже ошибка?

    • Escander

      192.168.1.6 – IP адрес компьютера в локальной сети (вместо локального – внутреннего 127.0.0.1)
      day2p – имя опубликованной базы

      • AnastD

        Я указываю http://192.168.??.??/day3p/ws/ОбменДанными.1cws в IE (IP 192.168.??.?? мой машины в сети) получаю ошибку Не удается найти страницу в сети. Если указываю http://192.168.??.??/day3p/ то получаю HTML код, публикация вроде без проблем прошла. Как все таки получить URL?

        • AnastD

          вот по это адресу http://192.168.??.??/day3p/ru_RU/ в IE открывается опубликованный клиент. Как из всего это получить URL ссылку, чтобы вставить в WS-ссылки. На виртуальную машину приложение добавить не удается пишет “Не правильный формат конфигурации”, адрес указываю http://192.168.??.??/day3p

          • DaNN

            выпубликуете веб-сервер, а надо опубликовать мобильное приложение: Конфигурация=мобприложение=публиковать

            • Игорь Сапрыгин

              При этом ВАЖНО что бы, не дай бог, мобильное приложение приложение не опубликовали в каталог куда уже засунули веб клиент :)
              Сразу придем к еще одной ошибке ))

            • AnastD

              ОК опубликовала мобильное приложение, получила файл 1cema. А дальше?

            • DaNN

              Дальше конфигурация у вас должна на андройд загрузиться.

            • DaNN

              Вы все-таки опубликовали мобильное приложение в ту же папку, что и сервер. Поэтому у вас неправильный формат конфигурации. Веб-сервер и мобильное приложение надо публиковать в РАЗНЫЕ папки, о чем вас Игорь недавно предупредил

        • Escander

          в методичке http://127.0.0.1/day3/ws/ОбменДанными.1cws?wsdl
          если у вас 192.168. – это внутренний IP (а я знаю что это именно так без вариантов) и ну никак не хотите пользоваться эмулятором… имхо, самый простой способ достучаться до этого IP – подключить к стационарному компьютеру и настроить Wi-Fi роутер, но можно так-же и прокинуть порты вашего компьютера вовне (но вовне будет другой адрес, естественно – его и указать для УРЛ) – но тут вам нужен сетевой администратор

  19. Jestery

    А можно настроить план обмена так, чтобы при проведении документа на сервере, его можно было бы увидеть на клиенте и при этом же можно было бы увидеть и ту номенклатуру из документа?

    • DaNN

      Не очень понятный вопрос. Вы хотите чтобы сразу после проведения обмен проходил? можно так сделать, но вот стоит ли:)

    • Escander

      нет, обмен инициирует мобильный клиент а не стационарно размещённая база 1С.

      • DaNN

        точно же, все никак в категориях мобильной платформы думать не привыкну:(

        • Jestery

          Сейчас, на основе баз третьего занятия, на клиенте ничего нет, не в справочнике, ни в документе, провожу документ на сервере,он появляется на клиенте, но в тч нет номенклатуры(только битая ссылка), и справочник номенклатур пуст, а хотелось бы, чтобы после проведения документа, если нет номенклатуры из документа в справочнике, то она должена добавиться.

  20. Drozd80

    Здравствуйте!
    При обмене вылетает ошибка (см. приложение). Базы с заданием скачены с сайта. В чем может быть причина

    • Игорь Сапрыгин

      Проблема в первом параметре метода УстановитьСтроку в модуле веб сервиса в строке кода №132
      Вот все что удается понять из Вашего скриншота :)

      Глянул в базе – это строка ЧтениеХМЛ.УстановитьСтроку(СтрокаСообщения);
      Проверьте что в переменной СтрокаСообщения

      • Drozd80

        Ошибка вылетает на клиенте строка 11
        Ответ = Соединение.ВыполнитьОбмен(СтрокаДанных)
        При этом СтрокаДанныхэто значение XDTO

      • Drozd80

        А как можно проверить что в этой переменной, если это передается с клиента и там можно поставить точку останова, а в серверной части в момент приема как это сделать?

        • Игорь Сапрыгин

          Посмотрите настройку отладки веб сервисов. В теоретичесих материалах текущего – вторго модуля страница 27 “Отладка веб-сервиса”

          • Drozd80

            СтрокаСообщения это ХранилищеЗначения, а должен быть XML на сколько я понимаю?

            • Игорь Сапрыгин

              Да именно XML на вход чтению XML идет. А как у вас туда ХЗ затесалось? Прикрепите скрин кода, может поймем. Так сложно “гадать”

            • Drozd80

              Я разобрался!
              Дело в том, что я для web-сервиса (поле пакеты XDTO), его операции и данных тип возвращаемого значения выставил http://v8.1c.ru/8.1/data/core, и ValueStorage.
              Здесь он меня и не понял что нужно вернуть/передать.
              А должно быть
              web-сервиса (поле пакеты XDTO) – пусто
              в его операции и данных тип возвращаемого значения- string (http://www.w3.org/2001/XMLSchema)

  21. Gendalf

    Почему-то не хочет синхронизироваться от сервера на мобилу.
    С мобилы данные уходят на сервер замечательно, ошибок никаких нигде не выдает, а изменения на сервере остаются только там, на мобилу не уходят. В чем может быть проблема?

    • Денис Глазырин

      На сервере регистрация объектов для обмена включена?

    • Gendalf

      Решил “обнулением” базы, как тут где-то советовали.
      т.е. выгрузил .CF и создал на её основе новую. Всё заработало.

  22. ci4e

    Переустановил апач. На локальной машине и по 127.0.0.1, и по localhost, и по ip открывается “It works”, т.е. типа работает.
    Но по локалке (http://ip) – ни в какую!
    Что не доделал? Помогите, плиз!

    • Игорь Сапрыгин

      Порты открыты? На ПК брэндмауер настраивали?

      • ci4e

        отключаю апач, запускаю дэнвер (с .htaccess в нужной папке) – все работает; отключаю дэнвер, запускаю апач – не работает.
        Имхо дело не в открытости портов или настройках брандмауэра…

        • Игорь Сапрыгин

          Может какие-то конфликты, увы, дальше не помогу. Чисто технический момент. Подождем, может кто чего подскажет полезного :)

        • DaNN

          У кого-то была уже такая проблема с денвером, вроде тоже не смогли решить

    • Денис Глазырин

      с самого ПК по http://ip – нормально открывается?
      Если да – то, дело скорее всего в брандмауэре/файрволе/антивирусе, которые могут блокировать прохождение пакетов.
      Пинг до ПК проходит?

      PS: где-то Дмитрий упоминал, что с Денвером – возможны проблемы.

    • Aida

      Такая же проблема. Возникла именно сегодня. До этого все работало.

    • ci4e

      Все-таки это был Брандмауэр… когда он успел включиться? не ясно.
      Долго пытался заставить 1С работать не с чистым апачем (win-службой), а с Дэнвером (там апач запускается НЕ как служба), так и не получилось (URL WS-ссылок сбивается на схему file:).

      С апачем локально обмен между Клиентом и Сервером заработал.
      Конфу с сервера опубликовал, приложение с клиента обновил, на планшете на всякий случай старый вариант приложения убил, поставил только что опубликованный. На планшете добавил узлы ЦБ и М2.
      Нажимаю “Выполнить обмен”… и получаю “Неизвестный получатель”…

      Что я сделал не так? Вроде все как у тренера…

  23. soulseller76

    При нажатии на кнопку “Выполнить синхронизацию” в мобильном устройстве у тренера появляется сообщение “Синхронизация прошла успешно!”. У меня же – нет ничего. Ни сообщения об ошибке, ни подтверждения, что синхронизация выполнена (у меня БлюСтик). Как проверить – ошибка это или нормальная ситуация?

    • Денис Глазырин

      Проверить-то как раз очень просто – создаёте Объект в базе, выполняете синхронизацию – открываете другую базу – смотрите результат. :)

    • soulseller76

      Выяснила – это была ошибка. :) Грызем дальше.

  24. L0z4

    у многих здесь мелькала ошибка при обращении мобильного приложения к веб-сервису вида ошибка разбора XML: – [1,1]
    Ответов уже было много, но может кому пригодится.
    На очередной стадии напоролся и сам на нее.
    Главная проблема этой ошибки не в том что xml битый (это было бы слишком просто), а в том что вместо xml может быть все что угодно. Сообщение о том что 1С нет доступа к каталогу, требование авторизации (мой случай т.к. добавил пользователей в 1С), так же это может быть вызвано работой прокси. Т.е. 1С пытается представить как wsdl лубой ответ сервера не вникая в суть.
    Вот чего я не понял, так это можно ли добавить ws-ссылку при наличие пользователей в 1С (авторизацию он даже не предлагает, а просто вылетает с этой ошибкой). решил проблему переходом на динамические ссылки.

    • Денис Глазырин

      Наличие пользователей в базе не должно влиять на добавление ws-ссылки, иначе смысл существования объекта? Только для баз без пользователей? Сомнительно.
      Посмотрите комментарии, у кого-то были проблемы после добавления пользователей в базы, там вроде бы решали путём добавления дополнительных параметров аутентификации в ссылке. (точно не помню – могу ошибаться.)

  25. pesveka

    Все сделал и получаю на планшете – 1С:Предприятие Не правильный формат конфигурации. и как с этим бороться?

    • Талов Александр

      проверьте каталог который указываете в мобильной платформе, там должен лежать опубликованный файл 1cema.xml

      • pesveka

        В каталоге три файла 1cema, 1cemarun и default.vrd.
        А мобильный клиент на планшете не грузится….

        • pesveka

          Странно. Заново опубликовал, апач перегрузил. все заработало. спасибо.

      • plevakin

        А что делать, если этого файла нет? Администрирование – Публикация на веб-сервере его не создает.

        • pesveka

          Моб.клиент публикуется по другому – Конфигурайия – Мобильное приложение – Публиковать

        • DaNN

          Что именное не публикует: веб-сервер или мобильное приложение? Хотя в любом случае обычно ошибка в правах доступа

    • Денис Глазырин

      В предыдущие дни – всё нормально подключилась? У Вас arm c x86 файлы не перепутаны?

      • pesveka

        Спасибо. разобрался, не так и не там публиковал мобильное приложение.

  26. soulseller76

    При попытке выполнить синхронизацию, появляется ошибка: “{ОбщаяКоманда.ВыполнитьСинхронизацию.МодульКоманды(14)}: Ошибка при вызове конструктора (WSОпределения): При создании описания сервиса произошла ошибка. http://192.168.1.11/day3/ws/ОбменДанными.1cws?wsdl: При создании описания сервиса произошла ошибка. http://192.168.1.11/day3/ws/ОбменДанными.1cws?wsdl
    Т.е. не отрабатывает вот эта строка кода:
    ВСОпределение = Новый WSОпределения(“http://192.168.1.11/day3/ws/ОбменДанными.1cws?wsdl”);
    Почему? IP мой, все остальное делала как тренер. :(

    • soulseller76

      Кстати, ссылка “http://127.0.0.1/serv/ws/ОбменДанными.1cws?wsdl” у меня не рабочая. Наверное, из-за этого. Но почему она не рабочая?

      • DaNN

        у вас в этой ссылке serv а в предыдущем сообщениии day3. Разберитесь куда публиковали и укажите правильную ссылку

        • soulseller76

          Ошибка во втором сообщении. ссылка “http://127.0.0.1/Day3/ws/ОбменДанными.1cws?wsdl” – это верная ссылка. Но она все равно – не работает. :(

            • DaNN

              А, все уже, незаметил что снизу вы разобрались с этой ошибкой.

      • soulseller76

        Давайте. :)
        В браузере http://192.168.1.11/day3/ws/ОбменДанными.1cws?wsdl – не отображается. Пишет – Not Found
        The requested URL /day3/ws/ОбменДанными.1cws was not found on this server.
        Такой же ответ дает ссылка http://127.0.0.1/day3/ws/ОбменДанными.1cws
        Хотя 127.0.0.1 – It works!
        Апач перезапускаю. Ну, ни в какую не работает! :(

        • Escander

          Попробуйте отказаться от кириллицы в пользу латиницы

          • soulseller76

            Пробовала уже. Результат – тот же самый. :(
            Но самое обидное то, что я нашла ошибку!!! Как можно быть такой невнимательной!!! :( У меня при публикации Day3, а в строке я пишу “day3”!!! :( Вопрос снят.

            • Игорь Сапрыгин

              Нормально ) тут 80% ошибок по невнимательности

        • Денис Глазырин

          “Пишет – Not Found
          The requested URL /day3/ws/ОбменДанными.1cws was not found on this server.”

          Это характерно для браузера Chrome – из-за наличия кириллицы в именах/путях.
          Для начала – переведите всё на латиницу: имя web-сервиса, операции и их параметры (не забудьте про URI-пространство имён). После этого переопубликуйте, перезапустите апач и попробуйте на ПК снова открыть ссылку (уже с изменениями).

    • Evghenia

      и у меня та же ошибка, подскажите пожалуйста, что не так:{ОбщаяКоманда.ВыполнитьСинхронизацию.МодульКоманды(13)}: Ошибка при вызове конструктора (WSОпределения): При создании описания сервиса произошла ошибка. http://192.168.0.41/control/ws/DataTr.1cws?wsdl: При создании описания сервиса произошла ошибка. http://192.168.0.41/control/ws/DataTr.1cws?wsdl
      (IP- правильный, потому что планшет подключался для обновления в прошлом уроке, http://127.0.0.1/control/ws/DataTr.1cws?wsdl – открывается)

      • DaNN

        А с планшета в браузере открывается ссылка?

        • Evghenia

          Да, с планшета в браузере открывается ссылка(показывает содержимое файла)

  27. Armaggik

    Взял базы решения от 3-го модуля, изменил ip сервиса, опубликовал мобильное приложение и веб-сервис, загрузил на телефоне мобильную базу, добавил узлы плана обмена, добавил номенклатуру “tst”. А при попытке выполнения обмена –
    ошибка разбора XML: – [1,1]
    Фатальная ошибка: Extra content at the end of the document

    Смотрю в отладчике: падает на строке
    ЧтениеСообщения.НачатьЧтение(ЧтениеХМЛ);

    При этом СтрокаСообщения =

    ОбменДаннымиСМобильнымУстройством
    ЦБ
    М1
    5
    0

    4af74675-5c99-0955-af1b-d7fdf26704b5
    false
    false
    00000000-0000-0000-0000-000000000000

    М1-000001

    tst

    Никак не пойму как с этим бороться. Пробовал по совету Дениса Глазырина на аналогичной проблеме пересоздавать мобильную базу, создать заново узлы плана обмена, номенклатуру – тоже самое. Даже если не создавать номенклатуры или другой полезной информации к обмену – та же самая ошибка.

      • Денис Глазырин

        Посмотрите внимательно, (у меня к сожалению из-за наличия кириллицы не видно названия, но подозреваю, что там написано “Номенклатура”) у Вас есть такой тег: “” в четвёртой снизу строке – из-за него и происходит ошибка.

          • Денис Глазырин

            Да, “ЕденицаИзмерения”. Получается нарушение структуры xml-файла, нет закрывающего тега. У меня с тегом Body так происходило, когда с клиента при первой синхронизации ничего не передавалось.

            • Armaggik

              Насколько знаю, это поддерживается стандартом XML, да и текст XML же генерируется не вручную, его генерирует платформа 1С. Вот попробовал заполнить единицу измерения, чтобы был и открывающий и закрывающий тег, ошибка осталась та же.

    • Escander

      В списке узлом обмена есть узлы с кодами ЦБ, М1?

          • Armaggik

            Да, в базах (как десктопной, так и в мобильной) узлы есть. В десктопной *ЦБ и М1, в мобильной ЦБ и *М1.

    • Armaggik

      ох уж помучался с этой ошибкой. Решил. Оказалось, что возникала ошибка: “Номер сообщения меньше или равен номеру ранее принятого сообщения”. Вот только не выдается она нигде в мобильном приложении, только ошибка разбора XML: – [1,1] Extra content at the end of the document.
      А получилось ее увидеть только присвоив текст XML из отладчика веб сервиса при выполнения обмена из мобильного приложения переменной “СтрокаСообщения”, которая подается на вход функции “ПринятьИзменениеПоПлану” и инициировав обмен уже из тонкого клиента десктопа базы мобильного приложения :)
      А случилось это, как я теперь уже понимаю, потому, что базу серверную я взял готовую из решения, а мобильная база на телефоне создается пустой, поэтому номера сообщений не соответствуют.

      • Игорь Сапрыгин

        Все верно. Поэтому и советовали уже неоднократно – или обнуляем номера сообщений, или из базы преподавателя берем только конфигурацию (базы создаем пустые). Решения альтернативны.

        • andr_andrey

          Я пересоздавал план обмена (обнуляя нумерацию), заново публиковал приложения, перебивал имена узлов на английский из 2 букв, чтобы не ошибиться, но синхронизация на ПК вылетает с ошибкой (на мобильном все ок):

          {ОбщаяКоманда.ВыполнитьСинхронизацию.МодульКоманды(24)}: Ошибка при вызове метода контекста (Синхронизация): Ошибка вызова операции сервиса: {DataTransfer}:ОбменДанными:Синхронизация(): Ошибка SOAP сервера: Неизвестная ошибка. {WebСервис.ОбменДанными.Модуль(11)}: Ошибка при вызове метода контекста (НачатьЧтение)
          по причине:
          {WebСервис.ОбменДанными.Модуль(11)}: Ошибка при вызове метода контекста (НачатьЧтение)
          по причине:

          по причине:
          Неизвестный получатель

          Уже и модуль 4 посмотрел, и рад бы сделать отчет, но 3 задание не пускает. Расстроен.

          • Игорь Сапрыгин

            На мобильном устройстве все ок, а на ПК вышибает… Т.е. запускаете обмен и серверная часть (сторона веб сервиса) вышибает? А отладку пробовали смотреть?

            • andr_andrey

              Да смотрел, формируется сообщение верно, но после вызова операции веб-сервиса Синхронизация, доходит до
              Функция Синхронизация(Данные)
              ОтветКлиенту = ЗарегестрироватьВыгрузку(Данные.Получить());

              Данные.Получить() отдает полноценный законченный XML

              Функция ЗарегестрироватьВыгрузку(СтрокаСообщения)
              ЧтениеХМЛ = Новый ЧтениеXML;
              ЧтениеХМЛ.УстановитьСтроку(СтрокаСообщения);

              ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
              ЧтениеСообщения.НачатьЧтение(ЧтениеХМЛ);

              и на чтении вылетает ошибка

    • Игорь Пищиков

      У меня была эта ошибка, срабатывала из-за того, что забыл прописать еще и в центральной базе в планах обмена мобильную базу.

  28. ci4e

    В отчаянной попытке нагнать отставание отложил командировку, взялся за 3-й блок. Работаю с выданными базами Сервер, Клиент.
    Создаю на Сервере новые товар/док, делаю “Выполнить обмен”… При выполнении оператора
    “Ответ = Соединение.ВыполнитьОбмен(СтрокаДанных);” в
    “Функция ВыполнитьОбменДанными()” вылетает ошибка
    “Ошибка вызова операции сервиса: {DataTrasfer}:ОбменДанными:ВыполнитьОбмен()
    по причине:
    Ошибка разбора SOAP сообщения: неверная версия сообщения”

    Ссылка “http://127.0.0.1/serv/ws/ОбменДанными.1cws?wsdl” рабочая.
    Параметр “СтрокаДанных”:

    ОбменДаннымиСМобильнымУстройством
    ЦБ
    М1
    23
    17

    14e69337-ca99-11e3-a4cf-c80aa99229ba
    false
    false
    00000000-0000-0000-0000-000000000000

    М1-000001

    Food
    st

    14e69338-ca99-11e3-a4cf-c80aa99229ba
    false
    2014-04-23T07:52:54
    М1-000001
    true

    14e69337-ca99-11e3-a4cf-c80aa99229ba
    2

    Где искать корни “неверной версии сообщения”?

    • ci4e

      Простите, не ожидал такой реакции на xml содержимое в комментарии.
      Прилагаю файл с содержимым СтрокаДанных.

    • Денис Глазырин

      пробовали обнулить номера сообщений?

        • Денис Глазырин

          Для узла обмена – создайте форму, на которую (при создании формы это доступно) выведите реквизиты “НомерОтправленного” и “НомерПринятого”. Можете посмотреть – как это сделано у Дмитрия в выгрузках учебных конфигураций.

  29. Евгений Хавов

    Выполнил. На пк и на планшете/телефоне обмен идет, префикс устанавливается соответствующий. Сложность там только одна: правильно указать последовательность чтения и регистрации изменений: на клиенте в одной последовательности, на сервере наоборот.

    • Евгений Хавов

      ну и глюки с андроидом – которые встретил в 2-ом домашнем задании – это само обновление – проще выйти и зайти снова на андроиде в 1С и потом нажать Обновить :), хотя выходить не обязательно – можно жать несколько раз, авось когда-то срабатывает :)

  30. uwscsi

    Не могу понять в чём причина ошибки.
    Пробую провести первый обмен, ещё когда в регистрах планов обмена всё пусто.
    С клиента – запускается обмен, формируется сообщение,
    на сервере – запускается процедура сервиса.
    Но при попытке прочитать сообщение вылетает фатальная ошибка.

    Строка, которая приходит на север:
    ———–

    ОбменДанными
    ЦБ
    М1
    1
    0

    ——–

    Фрагмент функции:

    ЧтениеXML = Новый ЧтениеXML;
    ЧтениеXML.УстановитьСтроку(СтрокаСообщения);
    ^^^^^- соответственно строка сообщения.

    ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
    ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
    ^^^^^^- а вот при вызове этого метода вылетает:

    “Ошибка при вызове метода контекста НачатьЧтение”
    Ругается на какой-то “extra content of the end of the document”

    Скриншот ошибки прикладываю.
    Подскажите, в какую сторону смотреть?

        • t13

          у меня возникла, из-за двух элементов в разных базах с одинаковыми кодами.

        • uwscsi

          Глаз замылился – поэтому пропустил строчку:

          ЗаписьСообщения.ЗакончитьЗапись();

          В результате – получался недописанный XML.
          Он – спокойно передавался на сервер,
          и там уже провоцировал ошибку при его чтении.
          Нужно очень внимательно относиться к коду –
          ошибки многие вылезают совсем не там, где ожидается.

          Чуть позже – обнаружил, что потерял ещё одну строчку:

          ЧтениеСообщения.ЗакончитьЧтение();

          Вызывает ту же ошибку.

Комментарии закрыты